#include <my_header.h>

/* Usage: ./20_pthread_mutex_init_RECURSIVE */
// 使用正常锁
int main(int argc,char*argv[])
{
    // 定义锁的类型
    pthread_mutexattr_t attr;
    // 初始化类型
    pthread_mutexattr_init(&attr);
    // 设置类型
    pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);

    // 定义锁和初始化锁
    pthread_mutex_t mLock;
    pthread_mutex_init(&mLock, &attr);

    // 加锁
    pthread_mutex_lock(&mLock);
    int res_errorcheck_lock =  pthread_mutex_lock(&mLock);
    THREAD_ERROR_CHECK(res_errorcheck_lock, "lock repetition");
    // 解锁
    printf("main is running\n");
    pthread_mutex_unlock(&mLock);

    // 销毁锁并销毁类型
    pthread_mutex_destroy(&mLock);
    pthread_mutexattr_destroy(&attr);
    return 0;
}

